home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / il21dec.h < prev    next >
C/C++ Source or Header  |  2001-10-08  |  4KB  |  113 lines

  1. //------------------------------------------------------------------------------
  2. // File: IL21Dec.h
  3. //
  4. // Desc: Line 21 Decoder related definitions and interfaces for ActiveMovie.
  5. //
  6. // Copyright (c) 1992-2001, Microsoft Corporation.  All rights reserved.
  7. //------------------------------------------------------------------------------
  8.  
  9.  
  10. #ifndef __IL21DEC__
  11. #define __IL21DEC__
  12.  
  13.  
  14. //
  15. //  Some enum data types used as line 21 decoder params by the interface
  16. //
  17. typedef enum _AM_LINE21_CCLEVEL {  // should we use TC1, TC2 in stead?
  18.     AM_L21_CCLEVEL_TC2 = 0
  19. } AM_LINE21_CCLEVEL, *PAM_LINE21_CCLEVEL ;
  20.  
  21. typedef enum _AM_LINE21_CCSERVICE {
  22.     AM_L21_CCSERVICE_None = 0,
  23.     AM_L21_CCSERVICE_Caption1,
  24.     AM_L21_CCSERVICE_Caption2,
  25.     AM_L21_CCSERVICE_Text1,
  26.     AM_L21_CCSERVICE_Text2,
  27.     AM_L21_CCSERVICE_XDS,
  28.     AM_L21_CCSERVICE_DefChannel = 10,
  29.     AM_L21_CCSERVICE_Invalid
  30. } AM_LINE21_CCSERVICE, *PAM_LINE21_CCSERVICE ;
  31.  
  32. typedef enum _AM_LINE21_CCSTATE {
  33.     AM_L21_CCSTATE_Off = 0,
  34.     AM_L21_CCSTATE_On
  35. } AM_LINE21_CCSTATE, *PAM_LINE21_CCSTATE ;
  36.  
  37. typedef enum _AM_LINE21_CCSTYLE {
  38.     AM_L21_CCSTYLE_None = 0,
  39.     AM_L21_CCSTYLE_PopOn,
  40.     AM_L21_CCSTYLE_PaintOn,
  41.     AM_L21_CCSTYLE_RollUp
  42. } AM_LINE21_CCSTYLE, *PAM_LINE21_CCSTYLE ;
  43.  
  44. typedef enum _AM_LINE21_DRAWBGMODE {
  45.     AM_L21_DRAWBGMODE_Opaque,
  46.     AM_L21_DRAWBGMODE_Transparent
  47. } AM_LINE21_DRAWBGMODE, *PAM_LINE21_DRAWBGMODE ;
  48.  
  49.  
  50. #ifdef __cplusplus
  51. extern "C" {
  52. #endif // __cplusplus
  53.  
  54. //
  55. //  Line 21 Decoder standard COM interface
  56. //
  57. DECLARE_INTERFACE_(IAMLine21Decoder, IUnknown)
  58. {
  59.     public:
  60.         //
  61.         // Decoder options to be used by apps
  62.         //
  63.  
  64.         // What is the decoder's level
  65.         STDMETHOD(GetDecoderLevel)(THIS_ AM_LINE21_CCLEVEL *lpLevel) PURE ;  
  66.         // supported level value is AM_L21Level_TC2 only
  67.         // skipping the SetDecoderLevel( )
  68.  
  69.         // Which of the services is being currently used
  70.         STDMETHOD(GetCurrentService)(THIS_ AM_LINE21_CCSERVICE *lpService) PURE ;  
  71.         STDMETHOD(SetCurrentService)(THIS_ AM_LINE21_CCSERVICE Service) PURE ;  
  72.         // supported service values are AM_L21Service_Caption1, 
  73.         // AM_L21Service_Caption2, AM_L21Service_Text1, AM_L21Service_Text2, 
  74.         // AM_L21Service_XDS, AM_L21Service_None)
  75.  
  76.         // Query/Set the service state (On/Off)
  77.         // supported state values are AM_L21State_On and AM_L21State_Off
  78.         STDMETHOD(GetServiceState)(THIS_ AM_LINE21_CCSTATE *lpState) PURE ;  
  79.         STDMETHOD(SetServiceState)(THIS_ AM_LINE21_CCSTATE State) PURE ;  
  80.  
  81.         //
  82.         // Output options to be used by downstream filters
  83.         //
  84.  
  85.         // What size, bitdepth, etc. should the output video be
  86.         STDMETHOD(GetOutputFormat)(THIS_ LPBITMAPINFOHEADER lpbmih) PURE ;
  87.         // GetOutputFormat() method, if successful, returns 
  88.         // 1.  S_FALSE if no output format has so far been defined by downstream filters
  89.         // 2.  S_OK if an output format has already been defined by downstream filters
  90.         STDMETHOD(SetOutputFormat)(THIS_ LPBITMAPINFO lpbmi) PURE ;
  91.  
  92.         // Specify physical color to be used in colorkeying the background 
  93.         // for overlay mixing
  94.         STDMETHOD(GetBackgroundColor)(THIS_ DWORD *pdwPhysColor) PURE ;
  95.         STDMETHOD(SetBackgroundColor)(THIS_ DWORD dwPhysColor) PURE ;
  96.  
  97.         // Specify if whole output bitmap should be redrawn for each sample
  98.         STDMETHOD(GetRedrawAlways)(THIS_ LPBOOL lpbOption) PURE ;
  99.         STDMETHOD(SetRedrawAlways)(THIS_ BOOL bOption) PURE ;
  100.  
  101.         // Specify if the caption text background should be opaque/transparent
  102.         STDMETHOD(GetDrawBackgroundMode)(THIS_ AM_LINE21_DRAWBGMODE *lpMode) PURE ;
  103.         STDMETHOD(SetDrawBackgroundMode)(THIS_ AM_LINE21_DRAWBGMODE Mode) PURE ;
  104.         // supported mode values are AM_L21_DrawBGMode_Opaque and
  105.         // AM_L21_DrawBGMode_Transparent
  106.  
  107. } ;
  108.  
  109. #ifdef __cplusplus
  110. }
  111. #endif // __cplusplus
  112. #endif // __IL21DEC__
  113.